Sys.Timer=function(){
Sys.Timer.initializeBase(this)
this._interval=1000
this._enabled=false
this._timer=null}
Sys.Timer.prototype={
get_interval: function(){
return this._interval
},
set_interval: function(value){
if(this._interval !==value){
this._interval=value
this.raisePropertyChanged('interval')
if(!this.get_isUpdating()&&(this._timer !==null)){
this._stopTimer()
this._startTimer()}}
},
get_enabled: function(){
return this._enabled
},
set_enabled: function(value){
if(value !==this.get_enabled()){
this._enabled=value
this.raisePropertyChanged('enabled')
if(!this.get_isUpdating()){
if(value){
this._startTimer()}
else{
this._stopTimer()}}}
},
add_tick: function(handler){
this.get_events().addHandler("tick",handler)
},
remove_tick: function(handler){
this.get_events().removeHandler("tick",handler)
},
dispose: function(){
this.set_enabled(false)
this._stopTimer()
Sys.Timer.callBaseMethod(this,'dispose')
},
updated: function(){
Sys.Timer.callBaseMethod(this,'updated')
if(this._enabled){
this._stopTimer()
this._startTimer()}
},
_timerCallback: function(){
var handler=this.get_events().getHandler("tick")
if(handler){
handler(this,Sys.EventArgs.Empty)}
},
_startTimer: function(){
this._timer=window.setInterval(Function.createDelegate(this,this._timerCallback),this._interval)
},
_stopTimer: function(){
window.clearInterval(this._timer)
this._timer=null}}
Sys.Timer.descriptor={
properties: [{name: 'interval',type: Number},
{name: 'enabled',type: Boolean}],
events: [{name: 'tick'}]}
Sys.Timer.registerClass('Sys.Timer',Sys.Component)

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();